.

imagen de circulo cromático

Este circulo fue realizado con processing

Trabajo Práctico 1

Este trabajo, tenía como única consigna, realizar un circulocromático, ya que despues, como alumna tuve total libertad para elegir de que manera hacerlo

  • filter_dramaCódigo
      void setup (){
             size(400,400);
             }
    
             void draw() {
    
             background(255);
    
             noStroke();
    
             //circulos del medio de arriba hacia abajo
             fill(255,255,0,50);
             ellipse(200,120,80,80);
             fill(191,127,65,50);
             ellipse(200,160,80,80);
             fill(85,85,85,50);
             ellipse(200,200,80,80);
             fill(190,64,190,50);
             ellipse(200,240,80,80);
             fill(127,0,255,50);
             ellipse(200,280,80,80);
    
             //fila 2
             fill(255,190,0,50);
             ellipse(165,140,80,80);
             fill(190,64,65,50);
             ellipse(165,180,80,80);
             fill(192,64,1,50);
             ellipse(165,220,80,80);
             fill(191,1,127,50);
             ellipse(165,260,80,80);
    
             //fila 4
             fill(192,255,0,50);
             ellipse(235,140,80,80);
             fill(64,191,0,50);
             ellipse(235,180,80,80);
             fill(127,0,191,50);
             ellipse(235,220,80,80);
             fill(92,1,255,50);
             ellipse(235,260,80,80);
    
             //fila 1
             fill(255,127,0,50);
             ellipse(130,160,80,80);
             fill(255,81,0,50);
             ellipse(130,200,80,80);
             fill(254,0,0,50);
             ellipse(130,240,80,80);
    
             //fila 5
             fill(0,255,1,50);
             ellipse(270,160,80,80);
             fill(0,128,127,50);
             ellipse(270,200,80,80);
             fill(0,0,254,50);
             ellipse(270,240,80,80);
    
             //lineas extras
             stroke(77);
             strokeWeight(3);
             noFill();
             ellipse(200,200,220,220);
             ellipse(200,200,160,160);}

.

.

gif de fragmento de recreación de los creditos del tomb raider 2013 en processing

Trabajo Práctico 2

Para este trabajo, se propuso realizar la pantalla de creditos de alguna pelicula o videojuego, yo elegí hacer los del videojuego tomb raider 2013

  • filter_dramaCódigo
      PImage img ;
    PImage img2;
    PImage img3;
    PImage img4;
    PImage img5;
    PImage img6;
    PImage img7;
    int opacidad = 0;
    int aumentar = 0;
    PFont font ;
    float posY1= 620;
    float posY2= 640;
    float posY3= 660;
    float DposY= 0;
    float posY4= 800;
    float posY5= 840;
    float posY6= 900;
    float posY7= 930;
    float posY8= 950;
    float posY13= 980;
    float posY9= 1480;
    float posY10= 1510;
    float posY14= 1540;
    float posY11= 1855;
    float posY12= 1885;
    float posY15= 2100;
    float posY16= 2220;
    float posY17= 2435;
    float posY18= 2600;
    
    
    
    
    
    void setup () {
    
      size(1000, 600);
      background(0);
      font = loadFont("Calibri-Bold-48.vlw");
      textFont(font);
      img = loadImage ("imagen inicial.jpg");
      img2 = loadImage("team_tanuki.jpg");
      img3 = loadImage("difuminado_de_texto.png");
      img4 = loadImage("CO-GAME DIRECTORS.jpg");
      img5 = loadImage("produccion.jpg");
      img6 = loadImage("DESING_TEAM.jpg");
      img7 = loadImage("puntero_mouse.png");
    
    
    }
    
    void draw() {
    
      noCursor();
      image(img, 0, 0);
      textSize(13);
      fill(120,0,0);
      text(" Clikee en cualquier lugar de la pantalla para continuar",30,30);
      fill(0, opacidad);
      rect(0, 0, 1000, 600);
      opacidad = opacidad + aumentar;
      fill(255);
      text("We hope you have enjoyed playing Tomb Raider" ,370,posY1);
      text(" We have worked our hardest to bring you the best game we could possibly make." ,270,posY2);
      text("Thank you for looking taking the time to complete our game" ,340,posY3);
      posY1 = posY1 + DposY;
      posY2 = posY2 + DposY;
      posY3 = posY3 + DposY;
      textSize(25);
      text("CRISTAL DYNAMICS " ,395,posY4);
      text("CORE TEAM", 440, posY5);
      textSize(15);
      fill(170,0,0);
      text("TEAM TANUKI", 465, posY6);
      posY4 = posY4 + DposY;
      posY5 = posY5 + DposY;
      posY6 = posY6 + DposY;
      fill(255);
      text("HEAD OF STUDIO                                         EXECUTIVE PRODUCER
                     CREATIVE DIRECTOR", 180, posY7);
      text("Darrell Gallagher                                              Ron Rosenberg
                                       Noah Hughers", 180, posY8);
      posY7 = posY7 + DposY;
      posY8 = posY8 + DposY;
      fill(170,0,0);
      text("CO-GAME DIRECTORS", 435, posY9);
      fill(255);
      text("Daniel Chayer (Bisson)                                          Daniel Neuburger", 290, posY10);
      posY9 = posY9 + DposY;
      posY10 = posY10 + DposY;
      image(img4, 240, posY14);
      posY14 = posY14 + DposY;
    
      text("LEAD ANIMATOR                                     LEAD ENGINEER
                   SENIOR  ART DIRECTOR", 210, posY11);
      text("Brandon Gernandez                                  Scott Krotz
                       Brian Horton", 210, posY12);
      posY11 = posY11 + DposY;
      posY12 = posY12 + DposY;
      image(img2, 240, posY13);
      posY13 = posY13 + DposY;
    
      image(img5, 50, posY15);
      fill(170,0,0);
      textSize(15);
      text("PRODUCTION", 700, posY15+70);
      posY15= posY15 + DposY;
      textSize(13);
      fill(255);
      text("Lead Producer                  Kyle Peschel\nSenior Producer
        Alex Offermann\nProducer                          Trevor Grimshaw\nProducer
                             Eric Tam\nProducer                          Kam Zambel",620,posY16);
                               posY16= posY16 + DposY;
      image(img6, 450, posY17);
      text("Lead Level Designer                            Jason Botta \nSenior Designer
                                               Michael Brinker\nSenior  Designer
                                                        Jim Conrad\nSenior Lever Designer
                                                    David Avi Mendelsohn\nSenior Lever Designer
                                                          Ian miller",50,posY18);
      fill(170,0,0);
      text("DESIGN TEAM", 180, posY17+120);
      posY18 = posY18 + DposY;
      posY17 = posY17 + DposY;
    
    
    
    
      image(img7, mouseX, mouseY,60,60);
    
    
      image(img3, 0, 0);
    
    
    }
    
    
    void mouseClicked() {
      aumentar = 5;
      DposY = -0.5;
    
    
    }
    
    
    
      

.

.

Trabajo Práctico 3

En cuanto esta actividad, se nos había dado como consignala realización de una aventura gráfica. Para ello, tuvimos que, en primer lugar, elegir un cuento ya existente, para en base a él, luego de modificar un poco la historia para ofrecer distintos caminos, crear una aventura interactiva, que se pudiese recorrer de diferentes maneras, según las decisiones tomadas. En mi caso, selecciné el cuento "El traje nuevo del emperador" del autor Hans Christian Andersen

  • Captura de la aventura gráfica del tp3
    Pantalla 1 de la aventura
  • Captura de la aventura gráfica del tp3
    Pantalla 4 de la aventura
  • Captura de la aventura gráfica del tp3
    Pantalla 5 de la aventura
  • Captura de la aventura gráfica del tp3
    Pantalla 8 de la aventura
  • Gif de un fragmento de la aventura gráfica donde se interactua con diferentes botones
    interacción entre pantallas 2 y 6
  • filter_dramaCódigo
      
    
    
      PImage Fpant1,cuadroTexto,globoRey,globoLadron,inicio,pant2, rst5,
       rst6, pant4,pant6, pant6PuertaAbierta, fondoCreditos;
      PImage pant7, nubeEmpleado, pant8, pant8Amarilla, pant9,
       pant9Amarilla, jajaja;
                PFont fuente1;
                int pantalla = 0;
                int posY = 600;
    
    
                void setup(){
                  size(800,600);
                  fuente1 = loadFont("fuente.vlw");
                  textFont(fuente1);
                  Fpant1 = loadImage("rey y ladrones.jpg");
                  cuadroTexto = loadImage("parte de abajo.png");
                  globoRey = loadImage("globo rey pantalla 1.png");
                  globoLadron = loadImage("globo de texto ladrones.png");
                  inicio = loadImage("Pantalla 0.png");
                  pant2 = loadImage("pantalla 2 .jpg");
                  rst5 = loadImage("rst5 .png");
                  rst6 = loadImage("rst6 .png");
                  pant4 = loadImage("pantalla 4 .png");
                  pant6 = loadImage("pantalla 6 .png");
                  pant6PuertaAbierta = loadImage("puerta abierta p4 .png");
                  fondoCreditos = loadImage("Aventura gráfica.png");
                  pant7 = loadImage("pantalla 7 .jpg");
                  nubeEmpleado = loadImage("nubeEmpleado.png");
                  pant8 = loadImage("pantalla 8.png");
                  pant8Amarilla = loadImage("pantalla 8 amarillo .png");
                  pant9 = loadImage("pant 9.png");
                  pant9Amarilla = loadImage("pant 9 amarilla.png");
                  jajaja = loadImage("pantalla 8 ja ja ja .png");
    
                  }
                void draw(){
                  if(pantalla==0){
                    boolean rectSup = (mouseX>295)&&(mouseX<530)&&(mouseY>380)&&(mouseY<410);
                    boolean rectInf = (mouseX>295)&&(mouseX<530)&&(mouseY>430)&&(mouseY<460);
    
    
                    textSize(30);
                    image(inicio,0,0);
                    strokeWeight(3);
                    fill(255);
                    rect(295,380,235, 30);
                    rect(295,430,235, 30);
                     if( rectSup ){
                      fill(253,190,20);
                    }else{
                    fill(0);
                    }
                    text("Iniciar", 370,405);
                    if( rectInf ){
                      fill(253,190,20);
                    }else{
                    fill(0);
                    }
                    text("Creditos", 360,455);
                  }else if(pantalla==1){
    
    
    
    
                   boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                   boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
    
                   image(Fpant1,0,0);
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text("¡El emperador ha recibido visitas! son dos hombres que presentan
                    unas telas que tienen la milagrosa
                   virtud\nde ser invisibles a toda persona que no fuera apta para su
                   cargo o que fuera irremediablemente estúpida", 40,490);
                   text("¿Qué debe hacer?", 40,522);
                   fill(255);
                   rect(450,530,100, 30);
                   rect(650,530,100, 30);
    
                    if( rectA){
                      fill(253,190,20);
                      image(globoRey,0,0);
                      text("¿Y cómo se yo que no me\n están mintiendo? exijo\n pruebas"
                      , 260,120);
                    }else{
                    fill(0);
                    }
                    text("A)", 495,550);
                    if( rectB ){
                      fill(253,190,20);
                      image(globoRey,0,0);
                      text("¡Deben ser vestidos magníficos!\n quiero esas telas",
                       245,120);
                    }else{
                    fill(0);
                    }
                    text("B)", 690,550);
    
                  }else if(pantalla==2){
    
    
    
                   boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                   boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
    
                   image(pant2,0,0);
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text("Así fue que la compra fue realizada, y mandaron a hacer las
                   telas cuanto antes. A medida que e
                   l tiempo\npasaba, y mientas los dos hombres fingían tejer (porque
                    en realidad nada hacían), el emperador
                    quería\nasegurarse de que ellos estén haciendo bien su trabajo,
                     de esta manera decidió comprobarlo", 40,490);
                   text("¿Debería ir él, o un empleado de confianza?", 40,540);
                   fill(255);
                   rect(450,530,100, 30);
                   rect(650,530,100, 30);
    
                    if( rectA){
                      fill(253,190,20);
                      image(rst5,0,0);
    
                    }else{
                    fill(0);
                    }
                    text("A)", 495,550);
                    if( rectB ){
                      fill(253,190,20);
                      image(rst6,0,0);
    
                    }else{
                    fill(0);
                    }
                    text("B)", 690,550);
    
    
                  }else if(pantalla==3){
    
    
    
    
                   boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                   boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
    
                   image(Fpant1,0,0);
                   image(globoLadron,0,0);
                   text("¡Debe creernos!", 355,145);
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text("Fue así que aquellos truhanes le dieron un discurso
                   extremadamente falso, pero lleno de
                   halagos al\nemperador y de los supuestos beneficios económicos
                   que tendría el pueblo. Al terminar,
                    se quedaron\nesperando una respuesta del emperador, para ver
                    si habían logrado persuadirlo, o no", 40,490);
                   text("¿Tendría que creerles o pensar que es mentira?", 40,540);
                   fill(255);
                   rect(450,530,100, 30);
                   rect(650,530,100, 30);
    
                    if( rectA){
                      fill(253,190,20);
                      image(globoRey,0,0);
                      text("Sus palabras son solo mentiras,\nustedes
                       son dos estafadores,\nexijo que
                       se retiren\ninmediatamente", 250,110);
                    }else{
                    fill(0);
                    }
                    text("A)", 495,550);
                    if( rectB ){
                      fill(253,190,20);
                      image(globoRey,0,0);
                      text("Sus palabras me parecen\ngenuinas y sinceras,
                       además,\nsiemprequiero
                       lo mejor para\nmi reino", 250,110);
                    }else{
                    fill(0);
                    }
                    text("B)", 690,550);
    
                  }else if(pantalla==4){
    
    
    
    
    
                   boolean creditos = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
    
                   image(pant4,0,0);
    
    
    
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text("Así fue que los dos estafadores se fueron y nunca más
                    regresaron", 40,490);
                   text("Fin", 40,540);
                   fill(255);
    
                   rect(650,530,100, 30);
    
                       if( creditos ){
                      fill(253,190,20);
                    }else{
                    fill(0);
                    }
    
                    text("Créditos", 670,550);
    
                  }else if(pantalla==6){
    
                    boolean puerta = (mouseX>593)&&(mouseX<774)&&(mouseY>14)&&(mouseY<369) ;
    
    
                   image(pant6,0,0);
    
                   if(puerta){
                     image(pant6PuertaAbierta,0,0);
                   }
    
    
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text("Al entrar a este lugar, el emperador
                   encontró a los dos hombres guardándose
                    los hilos caros que pedían\npara tejer las telas.
                     De esta manera, el emperador
                     entendió que todo era una mentira
                      para sacarle su\ndinero", 40,490);
                   text("¡Recorre la imagen para avanzar!", 40,540);
                   fill(255);
    
    
                  }else if(pantalla==5){
    
                 image(fondoCreditos,0,0);
    
                  boolean inicio = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
                   textSize(20);
                   fill(0);
                   text("EL VESTIDO NUEVO DEL EMPERADOR\n\n\n
                     Tecno Multimedia 1\n\n
                                     Comisión 4\n\n
                                       Lucia Mendiburu\n\n",250,posY);
    
                   if(posY<=600){
                     posY=posY-1;
                   }else if(posY== -50){
                     posY = -50;
                   }
    
                   strokeWeight(3);
                   fill(255);
                   rect(640,530,100, 30);
                       if( inicio ){
                      fill(253,190,20);
                    }else{
                    fill(0);
                    }
                    textSize(15);
                    text("Inicio", 675,550);
    
    
                  }else if(pantalla==7){
    
    
    
    
                   boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                   boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
    
                   image(pant7,0,0);
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text("El empleado se dirigió al lugar
                   donde los hombres estaban trabajando,
                    pero al ver los telares vacios,\nse sintió
                    decepcionado, por no creerse
                    suficiente para el cargo en el que trabajaba", 40,490);
                   text("¿Qué debe hacer?", 40,522);
                   fill(255);
                   rect(450,530,100, 30);
                   rect(650,530,100, 30);
    
                    if( rectA){
                      fill(253,190,20);
                      image(nubeEmpleado,0,0);
                      text("¡Tengo que decirle al emperador\nla
                      verdad de lo que ví", 274,160);
                    }else{
                    fill(0);
                    }
                    text("A)", 495,550);
                    if( rectB ){
                      fill(253,190,20);
                      image(nubeEmpleado,0,0);
                      text("No, desde luego no\npuedo decir que no\nhe visto la tela,
                      \nperdería mi trabajo", 309,140);
                    }else{
                    fill(0);
                    }
                    text("B)", 690,550);
    
                  }else if(pantalla==8){
    
                   boolean aplausos = (  (mouseX>440)&&(mouseX<617)&&(mouseY>389)&&(mouseY<458)
                    || (mouseX>615)&&(mouseX<718)&&(mouseY>201)&&(mouseY<462)
                    || (dist(mouseX,mouseY,529,355)<40) ||   (dist(mouseX,mouseY,675,157)<40) );
    
    
                   image(pant8,0,0);
    
    
    
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text("Como la soberbia pudo al emperador,
                    dijo que él si había podido verlas,
                    y que su empleado no merecía el\npuesto que tenía,
                    por lo tanto, lo despidió.
                     De esta manera, el emperador salió con ropa interior
                      a dar su\npróximo discurso,
                      “con sus nuevas prendas” quedando como un iluso
                      frente a un pueblo que se
                       reía en su cara", 25,490);
                   text("Fin            (¡Recorre la imagen para avanzar!)", 250,550);
    
                       if( aplausos){
                         image(pant8Amarilla,0,0);
                         image(jajaja,65,0);
                          }
    
    
    
                  }else if(pantalla==9){
    
                   boolean aplausos = (  (mouseX>440)&&(mouseX<617)&&(mouseY>389)&&(mouseY<458) ||
                   (mouseX>615)&&(mouseX<718)&&(mouseY>201)&&(mouseY<462) || (dist(mouseX,mouseY,529,355)<40)
                    ||   (dist(mouseX,mouseY,675,157)<40) );
    
    
                   image(pant9,0,0);
    
    
    
                   image(cuadroTexto,0,0);
                   textSize(15);
                   fill(0);
                   text(" ´´Son las telas mas hermosas que he visto´´
                   dijo el empleado. De esta manera,
                    creyendo en sus palabras, el\nemperador salió con
                     ropa interior a dar su próximo discurso,
                     “con sus nuevas prendas” quedando como un\niluso
                     frente a un pueblo que se reía en su cara",
                     25,490);
                   text("Fin            (¡Recorre la imagen para avanzar!)", 250,550);
    
                       if( aplausos){
                         image(pant9Amarilla,0,0);
                         image(jajaja,65,0);
                          }
    
    
    
                  }
    
    
    
                }
    
                void mouseClicked(){
    
    
                if(pantalla==0){
                    boolean rectSup = (mouseX>295)&&(mouseX<530)&&(mouseY>380)&&(mouseY<410);
                    boolean rectInf = (mouseX>295)&&(mouseX<530)&&(mouseY>430)&&(mouseY<460);
                  if( rectSup ){
                      pantalla=1;
                    }else if( rectInf ){
                      pantalla = 5;
                    }
    
                }else if(pantalla==1){
                  boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                  boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
                  if( rectA){
                      pantalla=3;
                    }
                       if( rectB ){
                       pantalla=2;
                         }
                }else if(pantalla==2){
                  boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                  boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
                  if( rectA){
                      pantalla=6;
                    }
                       if( rectB ){
                       pantalla=7;
                         }
                }else if(pantalla==3){
                  boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                  boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
                  if( rectA){
                      pantalla=4;
                    }
                       if( rectB ){
                       pantalla=2;
                          }
                }else if(pantalla==4){
    
                  boolean rectC = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
    
                        if( rectC ){
                       pantalla=5;
                         }
    
                }else if(pantalla==6){
                  boolean puerta = (mouseX>593)&&(mouseX<774)&&(mouseY>14)&&(mouseY<369);
    
                  if( puerta){
                      pantalla=4;
                    }
    
                }else if(pantalla==5){
                  boolean inicio = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
    
                  if( inicio){
                      pantalla=0;
                      posY = 600;
                    }
    
                }else if(pantalla==7){
                  boolean rectA = (mouseX>450)&&(mouseX<550)&&(mouseY>530)&&(mouseY<560);
                  boolean rectB = (mouseX>650)&&(mouseX<750)&&(mouseY>530)&&(mouseY<560);
                  if( rectA){
                      pantalla=8;
                    }
                       if( rectB ){
                       pantalla=9;
                         }
                }else if(pantalla==8){
                  boolean aplausos = (  (mouseX>440)&&(mouseX<617)&&(mouseY>389)&&(mouseY<458) ||
                   (mouseX>615)&&(mouseX<718)&&(mouseY>201)&&(mouseY<462) ||
                    (dist(mouseX,mouseY,529,355)<40) ||   (dist(mouseX,mouseY,675,157)<40) );
    
                  if( aplausos){
                      pantalla=5;
                    }
    
                }else if(pantalla==9){
                  boolean aplausos = (  (mouseX>440)&&(mouseX<617)&&(mouseY>389)&&(mouseY<458) ||
                   (mouseX>615)&&(mouseX<718)&&(mouseY>201)&&(mouseY<462) ||
                   (dist(mouseX,mouseY,529,355)<40) ||   (dist(mouseX,mouseY,675,157)<40) );
    
                  if( aplausos){
                      pantalla=5;
                    }
    
                }
    
                }
    
    
    
              

.

.

Trabajo Práctico 4

Para este trabajo, lo único que había que realizar, era modificar para así reutilizar codigo por medio de parametros, sin tener cambios en cuanto a lo visual, desde el trabajo anterior, ya que sigue siendo la misma aventura gráfica. A continuación, adjunto las diferentes pestañas con su respectivo codigo:

PFont fuente1;
int pantalla = 0;
float posY = 550;
int cantImagenes = 20;
int cantTextos = 29;
PImage [] imagenes = new PImage [cantImagenes];
String[] textos = new String [cantTextos];


void setup() {
  inicializar();
  size(800, 600);

}


void draw() {
  frameRate(2);
  surface.setResizable(true);


  println(mouseX + " : " + mouseY);
  println(pantalla);


  if (pantalla==0) {
    pantalla0();
  } else if (pantalla==1) {
    pantalla1();
  } else if (pantalla==2) {
    pantalla2();
  } else if (pantalla==3) {
    pantalla3();
  } else if (pantalla==4) {
    pantalla4();
  } else if (pantalla==6) {
    pantalla6();
  } else if (pantalla==5) {
    pantalla5();
  } else if (pantalla==7) {
    pantalla7();
  } else if (pantalla==8) {
    pantalla8();
  } else if (pantalla==9) {
    pantalla9();
  }
}
void mouseClicked() {


  if (pantalla==0) {
   botones0();
  } else if (pantalla==1) {
    botones1();
  } else if (pantalla==2) {
   botones2();
  } else if (pantalla==3) {
   botones3();
  } else if (pantalla==4) {
    botones4();
  } else if (pantalla==6) {
    botones6();
  } else if (pantalla==5) {
    botones5();
  } else if (pantalla==7) {
    botones7();
  } else if (pantalla==8) {
   botones8();
  } else if (pantalla==9) {
  botones9();
  }
}      



void inicializar() {

  inicializarImagenes();
  inicializarFuente();
  inicializarTextos();
}


void inicializarImagenes() {
  for (int i=1; iescX(450))&&(mouseXescY(530))&&(mouseYescX(650))&&(mouseXescY(530))&&(mouseYescX(440))&&(mouseXescY(389))&&(mouseYescX(615))&&(mouseXescY(201))&&(mouseYescX(450))&&(mouseXescY(530))&&(mouseYescX(650))&&(mouseXescY(530))&&(mouseYescX(mouseX1))&&(mouseXescY(mouseY1))&&(mouseYescX(440))&&(mouseXescY(389))&&(mouseYescX(615))&&(mouseXescY(201))&&(mouseYescX(650))&&(mouseXescY(530))&&(mouseY

void pantalla0() {
  boolean rectSup = (mouseX>escX(295))&&(mouseXescY(380))&&(mouseYescX(295))&&(mouseXescY(430))&&(mouseYescX(295))&&(mouseXescY(380))&&(mouseYescX(295))&&(mouseXescY(430))&&(mouseY

void pantalla1() {
  pantallaGeneralMod1(1, 2, 2, 3, 3, 4, 5, 3, 6, 7, 40, 522, 260,120, 245,120);
}

void botones1() {
  botonGeneralMod1(3, 2);

}     

void pantalla2() {
  pantallaGeneralMod1(6, 2, 8, 9, 7, 28, 5, 8, 28, 7, 40, 540,0,0,0,0);
}

void botones2() {
  botonGeneralMod1(6, 7);

}     

void pantalla3() {
  pantallaGeneralMod1(1, 2, 10, 11, 3, 12, 5, 3, 13, 7, 40, 540, 250,110, 250,110);
}

void botones3() {
  botonGeneralMod1(4, 2);
  }     

void pantalla4() {

  image(imagenes[9], 0, 0,escX(800), escY(600));
  image(imagenes[2], 0, 0,escX(800), escY(600));
  textSize(15);
  fill(0);
  text(textos[14], escX(40), escY(490));
  text(textos[15], escX(40), escY(540));
  fill(255);
  rect(escX(650), escY(530), escX(100), escY(30));

  interaccionPant4y5(1, 670);
}

void botones4() {
  botonGeneralMod2(650, 750, 530, 560, 5);
}     

void pantalla5() {

  image(imagenes[12], 0, 0,escX(800), escY(600));

  textSize(20);
  fill(0);
  text(textos[16], escX(250), escY(posY));

  if (posY<= escY(600)) {
     posY --;
  } else if (posY== -50) {
    posY = -50;
  }

  strokeWeight(3);
  fill(255);
  rect(escX(640), escY(530), escX(100), escY(30));

  interaccionPant4y5(17, 675);
}

void botones5() {
  botonGeneralMod2(650, 750, 530, 560, 0);
}     

void pantalla6() {
  boolean puerta = (mouseX>escX(593))&&(mouseXescY(14))&&(mouseY

void pantalla7() {
  pantallaGeneralMod1(13, 2, 20, 21, 14, 22, 5, 14, 23, 7, 40, 522, 274,160, 309,140);
}

void botones7() {
  botonGeneralMod1(8, 9);

}     

void pantalla8() {
  pantallaGeneralMod2(15, 2, 24, 25, 16, 19);
}

void botones8() {
  botonGeneralMod3();
}     

void pantalla9() {
  pantallaGeneralMod2(17, 2, 26, 27, 18, 19);
}

void botones9() {
  botonGeneralMod3();
}     

.

.

Trabajo Práctico 5

Como se ve en la imagen, para este trabajo tenía como consigna realizar un juego, que remplazara una pantalla de la aventura gráfica, por esa razón, decidí que este juego luego ocuparía la pantalla 7, una donde un empleado del rey, tiene que decidir entre decir que vió que las telas no existían, o mentir para mantener su trabajo, siendo las dos decisiones finales, las mismas en el juego y la aventura. Además, como se ve a continuación, este fue nuestro primer trabajo con POO

 Juego juego;

void setup() {
  size(500, 500);
  juego = new Juego();
  juego.inicializarImagenes();

}


void draw() {
  background(200);
  juego.dibujar();
}

void keyPressed() {
  juego.teclaPresionada();
}

 class Contador {
  int  contador, posX, posY;

  Contador(int p_posX, int p_posY) {
    contador = 0;
    posX = p_posX;
    posY = p_posY;
  }


  void dibujar() {
    textSize(15);
    fill(0);
    text("intentos:" + contador, posX, posY);
  }


  void incrementar() {
    contador++;
  }

  boolean haPerdido() {
    if (contador == 3) {
      return true;
    } else {
      return false;
    }
  }
}

 class Enemigo {
  int posX, posY, dirX, tam;


  Enemigo(int p_posX, int p_posY, int p_dirX, int p_tam) {
    posX = p_posX;
    posY = p_posY;
    dirX = p_dirX;
    tam= p_tam;
  }

  void dibujar() {

     image(juego.imagenes[2], posX, posY, tam, tam);


    if (posX < tam/12|| posX > width-tam) {
      dirX = dirX * -1;
    }
    posX = posX + dirX + dirX +  dirX;
  }


  void mover () {

    if (random(0, width)>width/2) {
      dirX = 1;
    } else {
      dirX = -1;
    }
  }
} 

 class Juego {

  int estado;
  int cantImagenes = 6;
  PImage [] imagenes = new PImage [cantImagenes];
  VideoJuego videoJuego;


  Juego() {

    inicializar();
  }

  void dibujar() {

    if (estado == 0) {
      dibujoPantallaInicio();
    } else if (estado == 1) {
      dibujoVideoJuego();
    } else if (estado == 2) {
      dibujoHaGanado();
    } else if (estado == 3) {
      dibujoHaPerdido();
    }
  }

  void teclaPresionada() {

    if (estado == 0) {
      estado = 1;
    } else if (estado == 1) {
      videoJuego.teclaPresionada();
    } else if (estado == 2) {
      inicializar();
    } else if (estado == 3) {
      inicializar();
    }
  }







  void dibujoPantallaInicio() {
    fill(255);
    rect(0,0,500,500);
    image(imagenes[4], 0, 0, 500, 500);
    fill(0);
    textAlign(CENTER);
    textSize(20);
    text("A cumplir la tarea del emperador ¡Pero apresúrate!\nSi no, ¡llegarás tarde!\n Presiona cualquier tecla para iniciar", width/2, height/5);
  }


  void dibujoVideoJuego() {

    fill(255);
    rect(0,0,500,500);

    videoJuego.dibujar();
    if (videoJuego.controlarGanarOPerder() == 2) {

      estado = 2;
    } else if (videoJuego.controlarGanarOPerder() == 3) {
      estado = 3;
    }

       image(imagenes[1], 0, 0, 500, 500);
  }




  void dibujoHaGanado() {
    fill(253,194,36);
    rect(0,0,500,500);
    image(imagenes[4], 0, 0, 500, 500);
    textAlign(CENTER);
    textSize(20);
    fill(0);
    text("¡Las telas son falsas!\n ahora a decirle la verdad al emperador\nPresiona cualquier tecla para reiniciar", width/2, height/5);


  }

  void dibujoHaPerdido() {

    fill(74,118,233);
    rect(0,0,500,500);
    image(imagenes[3], 0, 0, 500, 500);
    textAlign(CENTER);
    textSize(20);
    fill(0);
    text("¡Ya no hay mas tiempo!\nDeberas mentirle al emperador sobre las telas\nPresiona cualquier tecla para reiniciar", width/2, height/5);



  }




  void  inicializar() {


    videoJuego= new VideoJuego();

    estado = 0;
  }

  void inicializarImagenes() {

  for (int i=1; i 

 class Jugador {
  int posX, posY, tam;


  Jugador(int p_posX, int p_posY, int p_tam) {

    posX = p_posX;
    posY = p_posY;
    tam= p_tam;
  }

  void dibujar() {


    image(juego.imagenes[5], posX, posY, tam, tam);

  }



  void teclaPresionada() {

    if (keyCode == UP) {

      if (posY>tam) {
        posY = posY - tam/2;
      }
    } else if (keyCode == DOWN) {

      if (posY tam/12) {
        posX = posX - tam/2;
      }
    } else if (keyCode == RIGHT) {

      if (posX< width -tam/12) {
        posX = posX + tam/2 ;
      }
    }
  }



  boolean haGanado() {
    if (posY <= tam*2) {
      return true;
    } else {
      return false;
    }
  }
} 

 class VideoJuego {
  Jugador jugador;
  Contador contador;
  int cantidadEnemigos = 10;
  int tam = height/cantidadEnemigos;

  int [] posX = new int [cantidadEnemigos];
  int [] dirX = new int [cantidadEnemigos];
  Enemigo [] enemigos = new Enemigo [cantidadEnemigos];


  VideoJuego() {

    inicializar();
  }

  void dibujar() {

    dibujoVideoJuego();
  }

  void teclaPresionada() {

    jugador.teclaPresionada();
  }

  int generarPosEnemigo() {

    return round(random(tam, width-tam));
  }

  void generarDirEnemigo() {


    for (int h=3; h < cantidadEnemigos-1; h++) {

      if (random(0, width)>width/2) {
        dirX[h] = 1;
      } else {
        dirX[h] = -1;
      }
    }
  }


  void mover() {

    for (int i=3; i < cantidadEnemigos-1; i++) {
      enemigos[i].mover();
    }
  }

  int inicializarPosXJugador() {

    return width/2;
  }

  int inicializarPosYJugador() {

    return height - tam;
  }


  void dibujarEnemigos() {

    for (int i=3; i < cantidadEnemigos-1; i++) {
      enemigos[i].dibujar();

      if (dist(jugador.posX, jugador.posY, enemigos[i].posX, enemigos[i].posY) 

.

.

Trabajo Práctico Final

Como continuación de los anteriores trabajos, para este se propuso pasar la lógica de la programación de la aventura gráfica a POO y a su vez, remplazar el juego del tp5, por una de las pantalla de la misma. Por lo tanto, como no hubo ningun cambio visual, adjunto el codigo y sus modificaciones

import processing.sound.*;


Resize resize = new Resize();
Controlador controlador;

void setup(){
  surface.setResizable(true);
  size(800,600);
  controlador = new Controlador(this);


}

void draw(){
  background(200);
  controlador.dibujar();
}

void mouseClicked(){
  controlador.mouseClicked();
}


void keyPressed() {
  controlador.teclaPresionada();
}  

class Boton{
  int posX, posY, ancho, alto, pantallaAIr, posXTextInteractivo, posYTextInteractivo, tamTexto;
  String texto;
  String numTextInteractivo;
  PImage  numImgInteractiva;
  Transparencia transparencia;

 ;
  Boton(String texto, int posX, int posY, int pantallaAIr, PImage p_numImgInteractiva, String p_numTextInteractivo, int p_posXTextInteractivo, int p_posYTextInteractivo, int p_tamTexto, int p_ancho, int p_alto ,Transparencia transparencia){
    this.texto = texto;

    ancho = p_ancho;
    alto = p_alto;
    this.transparencia = transparencia;
    this.posX = posX;
    this.posY = posY;
    this.pantallaAIr = pantallaAIr;
    numImgInteractiva = p_numImgInteractiva;
    numTextInteractivo = p_numTextInteractivo;
    posXTextInteractivo = p_posXTextInteractivo;
    posYTextInteractivo = p_posYTextInteractivo;
    tamTexto = p_tamTexto;
    ancho = p_ancho;
    alto = p_alto;



  }

  void dibujar(){

    if(transparencia!= null){
    noStroke();
    }else if(transparencia == null){

      stroke(0);
    }






    fill(255,0);
    strokeWeight(resize.escX(3));
    rect(resize.escX(posX), resize.escY(posY), resize.escX(ancho), resize.escY(alto));


    if (mouseX > resize.escX(posX) && mouseX  resize.escY(posY) && mouseY < resize.escY(posY) + alto) {
     fill(253, 190, 20);
     image(numImgInteractiva, 0, 0,resize.escX(800), resize.escY(600));
    text(numTextInteractivo, resize.escX(posXTextInteractivo), resize.escY(posYTextInteractivo));
    } else {
      fill(0);
    }
    textSize(resize.escTxt(tamTexto));
    text(texto, resize.escX(posX) + 40, resize.escY(posY) + (alto-(width/150)));


  }

  int mouseClicked(){
    if(mouseX > resize.escX(posX) && mouseX < resize.escX(posX)+ ancho && mouseY > resize.escY(posY) && mouseY < resize.escY(posY) + alto ){
      return pantallaAIr;

    }
    return -1;
  }

}  

class Contador {
  int  contador, posX, posY;


  Contador(int p_posX, int p_posY) {
    contador = 0;
    posX = p_posX;
    posY = p_posY;
  }


  void dibujar() {
    textSize(resize.escTxt(15));
    fill(0);
    text("intentos:" + contador, resize.escX(posX), resize.escY(posX));
  }


  void incrementar() {
    contador++;
  }

  boolean haPerdido() {
    if (contador == 3) {
      return true;
    } else {
      return false;
    }
  }
}   

class Controlador {

  PFont fuente1;
  Creditos creditos;

  int cantImagenes = 25;
  PImage [] imagenes = new PImage [cantImagenes];

  int cantTextos = 29;
  String[] textos = new String [cantTextos];

  int cantidadPantallas = 11;
  PImage [] fondos = new PImage [cantidadPantallas];

  Pantalla pantallaActual;
  Pantalla [] pantallas = new Pantalla [cantidadPantallas];
  Juego juego;


  SoundFile musicaFondo;




  Controlador(PApplet pro) {


    musicaFondo = new SoundFile(pro, "Kingdom Dance (From TangledScore).mp3");
    this.musicaFondo.loop();
    musicaFondo.amp(0.1);

    inicializarTextos();
    inicializarImagenes();
    inicializarFuente();


    int pantalla;
    Boton boton1, boton2;
    Transparencia transparencia;



    //Creo la pantalla 0


    pantalla = 0;
    boton1 = new Boton (textos[0], 310, 380, 1, imagenes[19], textos[28], 2, 2, 30, 200, 38, null);
    boton2 = new Boton(textos[1], 310, 430, 5, imagenes[19], textos[28], 2, 2, 30, 200, 38, null);
    pantallas[pantalla] = new Pantalla(imagenes[5], imagenes[19], textos[28], textos[28], 0, 0, boton1, boton2, null, null);

    //Creo la pantalla 1
    pantalla = 1;
    boton1 = new Boton (textos[5], 450, 530, 3, imagenes[3], textos[4], 265, 107, 15, 100, 30, null);
    boton2 = new Boton(textos[7], 650, 530, 2, imagenes[3], textos[6], 245, 110, 15, 100, 30, null);
    pantallas[pantalla] = new Pantalla(imagenes[1], imagenes[2], textos[2], textos[3], 30, 530, boton1, boton2, null, null);

    //Creo la pantalla 2
    pantalla = 2;
    boton1 = new Boton (textos[5], 450, 530, 6, imagenes[7], textos[28], 265, 107, 15, 100, 30, null);
    boton2 = new Boton(textos[7], 650, 530, 7, imagenes[8], textos[28], 245, 110, 15, 100, 30, null);
    pantallas[pantalla] = new Pantalla(imagenes[6], imagenes[2], textos[8], textos[9], 30, 540, boton1, boton2, null, null);

    //Creo la pantalla 3
    pantalla = 3;
    boton1 = new Boton (textos[5], 450, 530, 4, imagenes[3], textos[12], 255, 107, 15, 100, 30, null);
    boton2 = new Boton(textos[7], 650, 530, 2, imagenes[3], textos[13], 255, 110, 15, 100, 30, null);
    pantallas[pantalla] = new Pantalla(imagenes[1], imagenes[2], textos[10], textos[11], 30, 540, boton1, boton2, null, null);
    //Creo la pantalla 4
    pantalla = 4;

    boton2 = new Boton(textos[1], 650, 530, 5, imagenes[19], textos[28], 255, 110, 15, 100, 30, null);
    pantallas[pantalla] = new Pantalla(imagenes[9], imagenes[2], textos[14], textos[15], 30, 540, null, boton2, null, null);

    //Creo la pantalla 5 (creditos)
    pantalla = 5;
    creditos = new Creditos(textos[16], 250, 550, 0);
    boton2 = new Boton(textos[17], 650, 530, 0, imagenes[19], textos[28], 255, 110, 15, 100, 30, null);
    pantallas[pantalla] = new Pantalla(imagenes[12], imagenes[19], textos[28], textos[28], -1, -1, null, boton2, creditos, null);


    //-----------------------------------------------------------------------------------------------------------------------------

    //Creo la pantalla 7 (juego)
    pantalla = 7;
    juego = new Juego();
    pantallas[pantalla] = new Pantalla(imagenes[19], imagenes[19], textos[28], textos[28], -1, -1, null, null, null, juego);

    //-----------------------------------------------------------------------------------------------------------------------------



    //Creo la pantalla 6 (boton puerta)
    pantalla = 6;
    transparencia = new Transparencia();
    boton1 = new Boton (textos[28], 593, 15, 4, imagenes[11], textos[28], -1, -1, 15, 182, 353,transparencia);
    pantallas[pantalla] = new Pantalla(imagenes[10], imagenes[2], textos[18], textos[19], 30, 540, boton1, null, null, null);

    //Creo la pantalla 8 (boton Señora)
    pantalla = 8;
    transparencia = new Transparencia();
    boton1 = new Boton (textos[28], 506, 334, 5, imagenes[18], textos[28], -1, -1, 15, 64, 132,transparencia);
    boton2 = new Boton(textos[28], 652, 124, 5, imagenes[18], textos[28], -1, -1, 15, 66, 347,transparencia);
    pantallas[pantalla] = new Pantalla(imagenes[15], imagenes[2], textos[24], textos[25], 30, 540, boton1, boton2, null, null);

    //Creo la pantalla 9 (boton señora)
    pantalla = 9;
    transparencia = new Transparencia();
    boton1 = new Boton (textos[28], 506, 334, 5, imagenes[18], textos[28], -1, -1, 15, 64, 132,transparencia);
    boton2 = new Boton(textos[28], 652, 124, 5, imagenes[18], textos[28], -1, -1, 15, 66, 347,transparencia);
    pantallas[pantalla] = new Pantalla(imagenes[17], imagenes[2], textos[26], textos[27], 30, 540, boton1, boton2, null, null);


    //Al terminar de crear las pantallas, indico la actual.
    pantallaActual = pantallas[0];
  }







  void dibujar() {
    pantallaActual.dibujar();
  }



  void mouseClicked() {
    int pantallaAIr = pantallaActual.mouseClicked();
    if (pantallaAIr != -1) {
      pantallaActual = pantallas[pantallaAIr];
    }

    creditos.reinicializar();
  }

  void teclaPresionada() {
    juego.teclaPresionada();
  }

  void inicializarTextos() {

    textos[0]="Iniciar" ;
    textos[1]= "Créditos";
    textos[2]= "¡El emperador ha recibido visitas! son dos hombres que presentan unas telas que tienen la milagrosa virtud\nde ser invisibles a toda persona que no fuera apta para su cargo o que fuera irremediablemente estúpida" ;
    textos[3]= "¿Qué debe hacer?";
    textos[4]= "¿Y cómo se yo que no me\n están mintiendo? exijo\n pruebas";
    textos[5]= "A)";
    textos[6]= "¡Deben ser vestidos magníficos!\n quiero esas telas";
    textos[7]= "B)";
    textos[8]= "Así fue que la compra fue realizada, y mandaron a hacer las telas cuanto antes. A medida que el tiempo\npasaba, y mientas los dos hombres fingían tejer (porque en realidad nada hacían), el emperador quería\nasegurarse de que ellos estén haciendo bien su trabajo, de esta manera decidió comprobarlo";
    textos[9]= "¿Debería ir él, o un empleado de confianza?";
    textos[10]= "Fue así que aquellos truhanes le dieron un discurso extremadamente falso, pero lleno de halagos al\nemperador y de los supuestos beneficios económicos que tendría el pueblo. Al terminar, se quedaron\nesperando una respuesta del emperador, para ver si habían logrado persuadirlo, o no";
    textos[11]= "¿Tendría que creerles o pensar que es mentira?";
    textos[12]= "Sus palabras son solo mentiras,\nustedes son dos estafadores,\nexijo que se retiren\ninmediatamente" ;
    textos[13]= "Sus palabras me parecen\ngenuinas y sinceras, además,\nsiemprequiero lo mejor para\nmi reino";
    textos[14]= "Así fue que los dos estafadores se fueron y nunca más regresaron";
    textos[15]= "Fin";
    textos[16]= "EL VESTIDO NUEVO DEL EMPERADOR\n\n\n                Tecno Multimedia 1\n\n                      Comisión 4\n\n                 Lucia Mendiburu\n\n" ;
    textos[17]= "Inicio";
    textos[18]= "Al entrar a este lugar, el emperador encontró a los dos hombres guardándose los hilos caros que pedían\npara tejer las telas. De esta manera, el emperador entendió que todo era una mentira para sacarle su\ndinero";
    textos[19]= "¡Recorre la imagen para avanzar!";
    textos[20]= "El empleado se dirigió al lugar donde los hombres estaban trabajando, pero al ver los telares vacios,\nse sintió decepcionado, por no creerse suficiente para el cargo en el que trabajaba";
    textos[21]= "¿Qué debe hacer?";
    textos[22]= "¡Tengo que decirle al emperador\nla verdad de lo que ví";
    textos[23]= "No, desde luego no\npuedo decir que no\nhe visto la tela,\nperdería mi trabajo";
    textos[24]= "Como la soberbia pudo al emperador, dijo que él si había podido verlas, y que su empleado no merecía el\npuesto que tenía, por lo tanto, lo despidió. De esta manera, el emperador salió con ropa interior a dar su\npróximo discurso, “con sus nuevas prendas” quedando como un iluso frente a un pueblo que se reía en su cara";
    textos[25]= "Fin            (¡Recorre la imagen para avanzar!)";
    textos[26]= " ´´Son las telas mas hermosas que he visto´´ dijo el empleado. De esta manera, creyendo en sus palabras, el\nemperador salió con ropa interior a dar su próximo discurso, “con sus nuevas prendas” quedando como un\niluso frente a un pueblo que se reía en su cara";
    textos[27]= "Fin            (¡Recorre la imagen para avanzar!)";
    textos[28]= "\n";
  }


  void inicializarImagenes() {
    for (int i=1; i

class Creditos {
  String texto;
  int posX, posY, pantallaAIr, ancho, alto;


  Creditos(String p_texto, int p_posX, int p_posY, int p_pantallaAIr) {

    posX = p_posX;
    posY = p_posY;
    texto = p_texto;
    pantallaAIr = p_pantallaAIr;
    ancho=100;
    alto=30;
  }



  void mover() {

    if (posY<= resize.escY(620)) {
      posY--;
    }
  }

    void dibujar() {
      textSize(resize.escTxt(20));
      fill(0);
      text(texto, resize.escX(posX), resize.escY(posY));

    }




  void reinicializar(){

    if (mouseX > resize.escX(650) && mouseX < resize.escX(650) + ancho && mouseY > resize.escY(530) && mouseY < resize.escY(530) + alto) {

    posY=  620;

    }


    }

 }  

class Enemigo {
  int posX, posY, dirX, tam;


  Enemigo(int p_posX, int p_posY, int p_dirX, int p_tam) {
    posX = p_posX;
    posY = p_posY;
    dirX = p_dirX;
    tam= p_tam;
  }

  void dibujar() {

     image(controlador.imagenes[21], resize.escX(posX), resize.escY(posY), resize.escTxt(tam), resize.escTxt(tam));


     //movimiento del enemigo que a ejecutarse desde el momento en el que se dibuja

    if (resize.escX(posX) < tam/12|| resize.escX(posX) > width-tam) {
      dirX = dirX * -1;
    }
    posX = posX + dirX + dirX +  dirX;
  }


  void rebotar () {

    if (random(0, width)>width/2) {
      dirX = 1;
    } else {
      dirX = -1;
    }
  }
}  

class Juego {

  int estado;
  int cantImagenes = 6;
  PImage [] imagenes = new PImage [cantImagenes];
  VideoJuego videoJuego;


  Juego() {

    inicializar();
  }

  void dibujar() {

    if (estado == 0) {
      dibujoPantallaInicio();
    } else if (estado == 1) {
      dibujoVideoJuego();
    } else if (estado == 2) {
      dibujoHaGanado();
    } else if (estado == 3) {
      dibujoHaPerdido();
    }
  }

  void teclaPresionada() {

    if (estado == 0) {
      estado = 1;
    } else if (estado == 1) {
      videoJuego.teclaPresionada();
    } else if (estado == 2) {
       controlador.pantallaActual = controlador.pantallas[8];
       inicializar();

    } else if (estado == 3) {
      controlador.pantallaActual = controlador.pantallas[9];
      inicializar();

    }
  }







  void dibujoPantallaInicio() {
    fill(255);
    rect(0,0,resize.escX(800), resize.escY(600));
    image(controlador.imagenes[23], 0, 0,resize.escX(800), resize.escY(600));
    fill(0);
    textAlign(CENTER);
    textSize( resize.escTxt(20));
    text("A cumplir la tarea del emperador ¡Pero apresúrate!\nSi no, ¡llegarás tarde!\n Presiona cualquier tecla para iniciar", width/2, height/5);
  }


  void dibujoVideoJuego() {

    fill(255);
    rect(0,0,resize.escX(800),resize.escY(600));

    videoJuego.dibujar();
    if (videoJuego.controlarGanarOPerder() == 2) {

      estado = 2;
    } else if (videoJuego.controlarGanarOPerder() == 3) {
      estado = 3;
    }

       image(controlador.imagenes[20], 0, 0,resize.escX(800), resize.escY(600));
  }




  void dibujoHaGanado() {
    fill(253,194,36);
    rect(0,0,resize.escX(800),resize.escY(600));
    image(controlador.imagenes[23], 0, 0,resize.escX(800), resize.escY(600));
    textAlign(CENTER);
    textSize( resize.escTxt(20));
    fill(0);
    text("¡Las telas son falsas!\n ahora a decirle la verdad al emperador\nPresiona cualquier tecla para continuar", width/2, height/5);


  }

  void dibujoHaPerdido() {

    fill(74,118,233);
    rect(0,0,resize.escX(800),resize.escY(600));
    image(controlador.imagenes[22], 0, 0,resize.escX(800), resize.escY(600));
    textAlign(CENTER);
    textSize( resize.escTxt(20));
    fill(0);
    text("¡Ya no hay mas tiempo!\nDeberas mentirle al emperador sobre las telas\nPresiona cualquier tecla para continuar", width/2, height/5);



  }




  void  inicializar() {


    videoJuego= new VideoJuego();

    estado = 0;
  }










}  

class Jugador {
  int posX, posY, tam;


  Jugador(int p_posX, int p_posY, int p_tam) {

    posX = p_posX;
    posY = p_posY;
    tam= p_tam;
  }

  void dibujar() {


    image(controlador.imagenes[24], resize.escX(posX), resize.escY(posY), tam, tam);

  }



  void teclaPresionada() {

    if (keyCode == UP) {

      if ( resize.escY(posY)>tam) {
        posY = posY - tam/2;
      }
    } else if (keyCode == DOWN) {

      if ( resize.escY(posY) tam/12) {
        posX = posX - tam/2;
      }
    } else if (keyCode == RIGHT) {

      if (resize.escX(posX)< width -tam/12) {
        posX = posX + tam/2 ;
      }
    }
  }



  boolean haGanado() {
    if (resize.escY(posY) <= tam*2) {
      return true;
    } else {
      return false;
    }
  }
}  

class Pantalla{
  Boton[] botones;
  PImage fondo;
  PImage contenedorTextoPantalla;
  String texto1Pantalla;
  String texto2Pantalla;
  int posXTexto2;
  int posYTexto2;
  Boton boton1;
  Boton boton2;
  Creditos creditos;
  Juego juego;


  Pantalla(PImage fondo, PImage contenedorTextoPantalla, String texto1Pantalla, String texto2Pantalla,int posXTexto2,int posYTexto2,  Boton boton1, Boton boton2, Creditos creditos, Juego juego){
    this.fondo = fondo;
    this.texto1Pantalla = texto1Pantalla;
    this.boton1 = boton1;
    this.boton2 = boton2;
    this.creditos = creditos;
    this.contenedorTextoPantalla  = contenedorTextoPantalla ;
    this.posXTexto2 = posXTexto2;
    this.posYTexto2 = posYTexto2;
    this.texto2Pantalla = texto2Pantalla;
    this.juego = juego;
  }

  void dibujar(){
    textAlign(CORNER);
    image(this.fondo,0,0,width, height);
    image(this.contenedorTextoPantalla,0,0,width, height);
    textSize(resize.escTxt(15));
    fill(0);
    text(this.texto1Pantalla, resize.escX(30),resize.escY(490));
     text(this.texto2Pantalla,  resize.escX(this.posXTexto2), resize.escY(this.posYTexto2));

    if(boton1 != null){
      boton1.dibujar();
    }

    if(boton2 != null){
      boton2.dibujar();
    }

    if(creditos != null){
      creditos.dibujar();
      creditos.mover();
    }

    if(juego != null){
     juego.dibujar();

    }



  }

  int mouseClicked(){
    int pantallaAIr = -1;

    if(boton1 != null){
      pantallaAIr = boton1.mouseClicked();
    }

    if(boton2 != null && pantallaAIr == -1){
      pantallaAIr = boton2.mouseClicked();
    }

    return pantallaAIr;
  }









}  

class Resize {
 float valor;


  Resize() {

  }


float escX(float valor) {
  return map(valor, 0, 800, 0, width);
}

float escY(float valor) {
  return map(valor, 0, 600, 0, height);
}

float escTxt(float valor) {
  return map(valor, 0, 800, 0, width/2+height/2);
}





  }  

class Transparencia{

//Se crea unicamente para consultar si su valor es nulo y así dibujar de manera transparente, o no, los botones que se encuentran al recorrer la pantalla de manera interactiva
//en las pantallas 6, 8 y 9, para eso, se pasa el objeto como parámetro en estas pantallas, a su vez, la consulta de si se asocia o no al valor null, se encuentra en el
//dibujar del boton.

  Transparencia() {

  }



  }  

class VideoJuego {
  Jugador jugador;
  Contador contador;
  int cantidadEnemigos = 10;
  int tam = height/cantidadEnemigos;

  int [] posX = new int [cantidadEnemigos];
  int [] dirX = new int [cantidadEnemigos];
  Enemigo [] enemigos = new Enemigo [cantidadEnemigos];


  VideoJuego() {

    inicializar();
  }

  void dibujar() {

    dibujoVideoJuego();
  }

  void teclaPresionada() {

    jugador.teclaPresionada();
  }

  int generarPosEnemigo() {

    return round(random(tam, width-tam));
  }

  void generarDirEnemigo() {


    for (int h=3; h < cantidadEnemigos-1; h++) {

      if (random(0, width)>width/2) {
        dirX[h] = 1;
      } else {
        dirX[h] = -1;
      }
    }
  }


  void mover() {

    for (int i=3; i < cantidadEnemigos-1; i++) {
      enemigos[i].rebotar();
    }
  }

  int inicializarPosXJugador() {

    return width/2;
  }

  int inicializarPosYJugador() {

    return height - tam;
  }


  void dibujarEnemigos() {

    for (int i=3; i < cantidadEnemigos-1; i++) {
      enemigos[i].dibujar();

      if (dist(resize.escX(jugador.posX), resize.escY(jugador.posY), resize.escX(enemigos[i].posX), resize.escY(enemigos[i].posY))   

Este sitio fue realizado por Lucía Mendiburu para la materia Tecnología Multimedial 1

imagen de flecha